iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0

這是一個Baby LLama2的Fork專案,用了中文的資料庫來訓練具有中文能力的Baby LLama2 Model,看ReadMe.md的內容,作者使用的也是一張RTX3090。
https://github.com/DLLXW/baby-llama2-chinese.git

訓練一個自己的baby llama2 chinese分為兩個步驟

  1. Pretrain
  2. Supervised Fine Tuning (SFT)

中文版的作者提共了三種資料的下載點,由於我目前沒有百度帳號,因此無法取得百度百科的資料,有些麻煩,正在想辦法用一些APP看能否成功註冊百度百科的帳號。

  • Wiki中文百科(25w词条)wikipedia-cn-20230720-filtered
  • BaiduBaiKe(563w词条) 百度网盘 提取码: bwvb
  • Medical Dataset

不過只使用wiki跟medical dataset的資料也能夠先進行pretrain的步驟:

cd data
### clone wiki dataset
git clone https://huggingface.co/datasets/pleisto/wikipedia-cn-20230720-filtered
### clone medical dataset
git clone https://huggingface.co/datasets/shibing624/medical/tree/main

需要修改一下data_process.py這個腳本,將main的前面幾行修改成下面這樣,針對剛剛clone下來的wiki與medical dataset進行資料前處理:

if __name__=="__main__":
    tokenizer=ChatGLMTokenizer(vocab_file='./chatglm_tokenizer/tokenizer.model')
    process_wiki_clean()
    process_medical('./data/medical/pretrain/medical_book_zh.json','book')
    process_medical('./data/medical/pretrain/train_encyclopedia.json','encyclopedia')
    ......

完成後在data資料夾下將會有處理好的4個.bin檔,用來進行pretrain。

在pretrain前需要對pretrain.py進行一些修改,分別是修改網路的大小

if __name__=="__main__":
    max_epoch = 50
    ...
    dim = 512
    n_layers = 8

並且把sampler改成非分散式的

...
train_sampler = torch.utils.data.RandomSampler(train_ds)
...

試跑了一下沒問題,打算train一個晚上看看情況,並且先嘗試取得百度的帳號,來取得百度百科的訓練資料。


上一篇
Day 6 - Baby LLama2
下一篇
Day 8 - Baby LLama2 Chinese (2)
系列文
用單張顯卡探索大型語言模型的奧秘30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言